package 集合进阶.单列集合.List集合.Set集合;

public class Student implements Comparable<Student> {
   private String name;
   private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }

    @Override
    public int compareTo(Student o) {
        //指定排序的规则
        //只看年龄,按照年龄的升序进行排列
        /* this:表示当前要添加的元素
            o:表示已经在红黑树存在的元素
            返回值:
                负数:认为添加的元素是小的存左边
                正数:认为要添加的元素是大的,存右边
                0:  认为要添加的元素已经存在,舍弃
         */
        //主要的判断条件：按照年龄的大小进行排序
        int result=this.getAge()-o.getAge();
        //次要的判断条件：年龄相同按照字母的顺序排列
        result=result==0?this.getName().compareTo(o.getName()):result;
        return result;
    }
}
